using System.Threading.Tasks;
using NetTopologySuite.Features;
using NetTopologySuite.Geometries;
using ZMap.Render;

namespace ZMap.Layer
{
    public interface IBaseLayer
    {
        string Name { get; }

        double Opacity { get; }

        bool Visible { get; }

        /// <summary>
        /// 显示顺序，其值等于在地图对象里图层列表的位置
        /// </summary>
        int ZIndex { get; }

        /// <summary>
        /// 最大缩放级别
        /// </summary>
        double MinZoom { get; }

        /// <summary>
        /// 最小缩放级别
        /// </summary>
        double MaxZoom { get; }

        /// <summary>
        /// 最大分辨率
        /// </summary>
        double MaxResolution { get; }

        /// <summary>
        /// 最小分辨率
        /// </summary>
        double MinResolution { get; }

        /// <summary>
        /// 可视区域
        /// </summary>
        Envelope Extent { get; }
    }
}